#include <algorithm>
#include <cctype>
#include <cstdio>
#include <iostream>
#include <ostream>
using namespace std;

const int MAX = 200+5;
int n,M,T;
int m[MAX],t[MAX];
int readint();
int dp[MAX][MAX];

int main(){
    n=readint(),M=readint(),T=readint();
    for(int i=1;i<=n;i++){
        m[i]=readint(),t[i]=readint();
    }
    for(int i=1;i<=n;i++){
        for(int j=M;j>=1;j--){
            for(int k=T;k>=1;k--){
                dp[j][k] = dp[j][k];
                if(j>=m[i]&&k>=t[i]){
                    dp[j][k] = max(dp[j][k],dp[j-m[i]][k-t[i]]+1);
                }
            }
        }
    }
    cout<<dp[M][T]<<endl;
}

int readint(){
    int x=0,w=1;
    char ch=0;
    while(!isdigit(ch)){
        if(ch=='-')w=-1;
        ch=getchar();
    }
    while(isdigit(ch)){
        x=x*10+(ch-'0');
        ch=getchar();
    }
    return x*w;
}